package com.xiaobai.frame.service;

import com.xiaobai.common.utils.result.Result;
import com.xiaobai.frame.entity.ClientDetails;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaobai.frame.entity.DTO.PageDTO;

/**
 * <p>
 * 第三方登录数据表 服务类
 * </p>
 *
 * @author author
 * @since 2024-06-29
 */
public interface IClientDetailsService extends IService<ClientDetails> {

    /**
     * 通过系统的appid拿到临时凭证
     * @param appid 系统唯一id
     * @return 返回临时凭证code
     */
    Result run(String appid);

    /**
     * 通过拿到的code获取到进入系统的code
     * @param appid 系统的appid
     * @param appSecret 系统的密钥
     * @param code 获取的临时凭证
     * @return 返回token
     */
    Result getToken(String appid, String appSecret, String code);

    /**
     * 查询数据列表
     * @param pageDTO 筛选条件
     * @return 返回数据列表
     */
    Result listData(PageDTO pageDTO);

    /**
     * 查询单个数据的详细信息
     * @param id 数据id
     * @return 数据的全部信息
     */
    Result getOneData(String id);

    /**
     * 单个新增数据
     * @param clientDetails 传入实体类数据
     * @return 是否新增成功
     */
    Result addData(ClientDetails clientDetails);

    /**
     * 修改数据
     * @param clientDetails 修改实体类
     * @return 是否修改成功
     */
    Result updateData(ClientDetails clientDetails);

    /**
     * 删除数据
     * @param ids 删除数据id列表
     * @return 是否删除
     */
    Result deleteData(Long[] ids);
}
